NoSQL数据库仍然存在哪些安全问题
NoSQL数据库仍然存在以下安全问题:
已有Key-Value的数据库产品大多是面向特定应用自治构建的,缺乏通用性。
已有产品支持的功能有限(不支持事务特性),导致其应用具有一定的局限性。
已有一些研究成果和改进的NoSQL数据存储系统,都是针对不同应用需求而提出相应解决方案,如支持组内事务特性、弹性事务等,很少从全局考虑系统的通用性,也没有形成系列化的研究成果。
缺乏类似关系数据库所具有的强有力的理论、技术(如成熟的基于启发式的优化策略、两段封锁协议等)、标准规范(如SQL语言)的支持。
缺乏足够的安全措施,很多数据库都需要采用网络控制等方式进行安全控制。但随着NoSQL的发展,越来越多的人开始意识到安全的重要,部分NoSQL产品逐渐开始提供一些安全方面的支持。
解决Nosql数据库不安全的方法有以下这些:
限制远程访问数据库服务器:对于大多数的企业或者个人用户,不需要通过不安全的开放网络来访问数据库服务器,所以可以通过配置防火墙等一些外部防护设备将数据库只能从内部网络访问,如需远程访问也要选择更加安全的SSH隧道来进行远程访问。
不要授予非管理员用户文件/高级/程序权限:文件,高级和程序权限都不应该被滥用。文件权限让用户可以在文件系统中的任何一个地方编写文件,而程序权限让用户在任何时候都能够查看服务器活动,终止客户端连接甚至更改服务器操作。为了数据库安全,这些权限只能授予给管理员账户。
限制或禁用显示数据库权限:显示数据库特权可以用于收集数据库信息,所以攻击者通常利用它来窃取数据并准备进一步攻击。应该把这个权限授予那些真正需要的人,或者直接禁用这个权限,你只需要把skip-show-database添加到MySQL数据库中的/etc/my.cnf配置文件中。对于Windows操作系统来说,则需要添加到my.ini文件中。
限制管理员和所有其他用户的权限:即使是管理员,也不要在同一账户中授予所有权限。最好降低管理员账户访问数据的权限。其他的用户,检查所有他们拥有的权限,以确保一切都是合适的。
减少管理员账户:管理员账户越多,风险越大,应该保持尽可能最少的帐户数量,只有为那些真正需要它的人创建账户。需要定期检查并清理那些不必要的账户。
加强所有的密码:除了管理员帐户,还需要加强所有其他用户的密码,检查所有的用户名和密码,必要的时候重置安全强度低的账户密码。